Не все проблемы мои закончились на этом=)
Но выход я нашёл, теперь чисто в образовательных целях поясните мне разницу=)
Вот этот скрипт шлёт POST
var ajax=null;
// без изменений
function getAjax(){
if (window.ActiveXObject) // для IE
return new ActiveXObject("Microsoft.XMLHTTP");
else if (window.XMLHttpRequest)
return new XMLHttpRequest();
else {
alert("Browser does not support AJAX.");
return null;
}
}
function savedata(pid){
ajax=getAjax();
var param;
var product_name = document.getElementById('product_name'+pid).value;
var product_sku = document.getElementById('product_sku'+pid).value;
var product_s_desc = document.getElementById('product_s_desc'+pid).valu e;
var product_desc = document.getElementById('product_desc'+pid).value;
var product_publish = document.getElementById('product_publish'+pid).val ue;
var product_price = document.getElementById('product_price'+pid).value ;
if (ajax != null) {
// метод POST, указываем просто имя файла
ajax.open("POST","index.php?option=com_cmok&task=s ave&format=row",true);
// если параметров несколько, то они разделяются &
param="&product_name="+encodeURIComponent(product_ name)+"&product_sku="+encodeURIComponent(product_s ku)+"&product_s_desc="+encodeURIComponent(product_ s_desc)+"&product_desc="+encodeURIComponent(produc t_desc)+"&product_publish="+product_publish+"&prod uct_price="+encodeURIComponent(product_price)+"&pi d="+pid;
// добавляем стандартный заголовок http
// посылаемый через ajax
ajax.setRequestHeader("Content-type",
"application/x-www-form-urlencoded");
// вроде эти могут тормозить
ajax.setRequestHeader("Content-length", param.length);
ajax.setRequestHeader("Connection", "close");
ajax.onreadystatechange = function(){
if(ajax.readyState==4 && ajax.status==200)
document.getElementById('save'+pid).innerHTML=ajax .responseText;
}
// посылаем наши данные или пустую строку (param="")
// главное не null
ajax.send(param);
}
}
//---------------------------------------------------------------
А вот этот почему то не хочет если вписать в send(param), зато get шлёт нормально
function getXmlHttp(){
var xmlhttp;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
// javascript-код голосования из примера
function ajaxfunction(x) {
// (1) создать объект для запроса к серверу
var req = getXmlHttp()
// (2)
// span рядом с кнопкой
// в нем будем отображать ход выполнения
var statusElem = document.getElementById('status');
req.onreadystatechange = function() {
// onreadystatechange активируется при получении ответа сервера
if (req.readyState == 4) {
// если запрос закончил выполняться
// statusElem.innerHTML = req.statusText // показать статус (Not Found, ОК..)
if(req.status == 200) {
// если статус 200 (ОК) - выдать ответ пользователю
var newElement = document.createElement('div')
newElement.innerHTML = req.responseText
statusElem.appendChild(newElement)
}
// тут можно добавить else с обработкой ошибок запроса
}
}
// (3) задать адрес подключения
req.open('GET', 'index.php?option=com_cmok&task=hello&format=row&m enu='+x, true);
// объект запроса подготовлен: указан адрес и создана функция onreadystatechange
// для обработки ответа сервера
// (4)
req.send(null); // отослать запрос
// (5)
statusElem.innerHTML = ''
}
//=================================================
Поясните пожалуйста кто может
|